__author__ = 'East'

import time
# 高阶函数，满足下面两个函数之一就是高阶函数：
#       a.把一个函数名字当做形参传给另一个函数(不修改被装饰函数源代码的情况下，为其添加功能)
#       b.返回值中，包含函数名字(不修改函数的调用方式)

def bar():
    time.sleep(3)
    print('in the bar')

def test1(func):
    start_time = time.time()
    func()
    stop_time = time.time()
    print('the function run time is %s' % (stop_time - start_time))

test1(bar)
# func = bar
# func()

print('------------')
def test2(func):
    print(func)
    return func

print(test2(bar))
t = test2(bar)
t()     # 运行bar函数
